package java6703.generic;

    /*
    解题思路：
    （1）用String实例化自定义的泛型类MaxMin6703，练习计算一组字符串的最大和最小;
    (2)用Character实例化自定义的泛型类MaxMin6703，练习计算一组Character的最大和最小;
    (3)用LocalDate实例化自定义的泛型类MaxMin6703，练习计算一组LocalDate的最大和最小;
    (4)用Object实例化自定义的泛型类MaxMin6703，练习计算一组Object的最大和最小;
     */

    /*
    问题1：无法通过编译原因----此泛型受限制，不可以传递Object对象和LocalDate对象；

    问题2：含义与作用----------1.限定范围；
                            2.可以使用限定类的方法；
                            3.另外一个点，就是限定了只能是同类型的进行比较；
                            4.有时候，需要限制类型，这样更加安全；

    问题3：能否将泛型类MaxMin6703定义为工具类---------不能；
     */
import sun.util.resources.LocaleData;

public class MaxMinDemo6703 {
    public static void main(String[] args) {

        //用String实例化自定义的泛型类MaxMin6703，计算一组字符串的最大和最小;
        String strMathMax = new MaxMin6703<String>("aaa").max6703("bbb");
        String strMathMin = new MaxMin6703<String>("ccc").min6703("ddd");
        System.out.println("计算一组字符串的最大和最小:");
        System.out.println("max："+strMathMax+"\n"+"min："+strMathMin);


        //用Character实例化自定义的泛型类MaxMin6703，计算一组Character的最大和最小;
        Character chMathMax = new MaxMin6703<Character>('a').max6703('b');
        Character chMathMin = new MaxMin6703<Character>('c').min6703('d');
        System.out.println("计算一组Character的最大和最小:");
        System.out.println("max："+chMathMax+"\n"+"min："+chMathMin);


//        //无法通过编译原因：此泛型受限制，不可以传递LocalDate对象；
//        //用LocalDate实例化自定义的泛型类MaxMin6703，计算一组LocalDate的最大和最小;
//        LocaleData Max6703= new MaxMin6703<LocaleData>("111").max6703("222");
//        LocaleData Min6703 = new MaxMin6703<LocaleData>("111").min6703("222");
//        System.out.println("计算一组LocalDate的最大和最小");
//        System.out.println("max:"+Max6703+"\n"+"min:"+Min6703);


//        //无法通过编译原因：此泛型受限制，不可以传递Object对象；
//        // 用Object实例化自定义的泛型类MaxMin6703，计算一组Object的最大和最小;
//        Object max6703 = new MaxMin6703<Object>("111").max6703("222");
//        Object min6703 = new MaxMin6703<Object>("111").min6703("222");
//        System.out.println("计算一组Object的最大和最小");
//        System.out.println("max:"+max6703+"\n"+"min:"+min6703);




    }
}
